Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-0 vector-toc-not-available vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-0 skin-theme-clientpref-day vector-sticky-header-enabled" lang="de" dir="ltr"><head>
<meta charset="UTF-8">
<title>Datensegment</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="icon" type="image/png" href="./_res_/favicon.png">
<link rel="canonical" href="https://de.wikipedia.org/wiki/Datensegment"> <link href="./_mw_/ext.wikimediamessages.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./_mw_/skins.vector.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link href="./_mw_/ext.gadget.citeRef.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.defaultPlainlinks.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonHide.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonLayout.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiCommonStyle.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiDarkmode.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.dewikiResponsive.css" rel="stylesheet" type="text/css">
<link href="./_mw_/ext.gadget.specialSearch.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" type="text/css" href="./_mw_/site.styles.css">
<link rel="stylesheet" type="text/css" href="./_mw_/noscript.css">
<link rel="stylesheet" type="text/css" href="./_res_/footer.css">
<link rel="stylesheet" type="text/css" href="./_res_/vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Datensegment rootpage-Datensegment skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Datensegment</span></h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="contentSub">
<div id="mw-content-subtitle"></div>
</div>
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="de" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="de" dir="ltr">
<p>Als <b>Datensegment</b> bezeichnet man den Teil von Objektdateien oder eines laufenden <a href="Prozess_(Informatik)" title="Prozess (Informatik)">Prozesses</a>, in dem globale und statische <a href="Variable_(Programmierung)" title="Variable (Programmierung)">Variablen</a> abgelegt sind. Diese Variablen müssen beim Start des Programms bereits im Speicher vorhanden und initialisiert sein, außerdem ist ihr Speicherplatzbedarf bereits zur Übersetzungszeit bekannt. Daher wird bereits beim Übersetzen ein Datenblock erstellt, der später als Teil des Programms beim Starten in den Speicher geladen und sofort verwendet werden kann. Manchmal werden Daten-, BSS-, <a href="Stapelspeicher" title="Stapelspeicher">Stack</a>- und Heap-Bereiche gemeinsam als „Datensegment“ bezeichnet.
</p><p>In <a href="Maschinensprache" title="Maschinensprache">Maschinensprache</a> bestehen dann getrennte Segmente für Daten und ausführbaren Code. Dafür halten zum Beispiel <a href="Mikroprozessor" title="Mikroprozessor">Prozessoren</a> der <a href="X86-Architektur" title="X86-Architektur">x86-Architektur</a> im <a href="Realmode" class="mw-redirect" title="Realmode">Realmode</a> die <a href="Register_(Prozessor)" title="Register (Prozessor)">Segmentregister</a> <i>CS</i> (<i>CodeSegment</i>) und <i>DS</i> (<i>DataSegment</i>) bereit. Einzelne Befehle beziehen sich dann entweder auf das Daten- oder Codesegment. So bezeichnet die <a href="Sprunganweisung" title="Sprunganweisung">Sprunganweisung</a> <i>JMP 0120</i> zum Beispiel den Sprung innerhalb des Segments, welches durch die Segmentadresse im Segmentregister <i>CS</i> vorgegebenen ist, um den Offset 0120 Bytes weiter zu springen. Im Real Mode ergibt die Multiplikation der Segmentadresse mit dem Hexwert 10h (16 dezimal), was einem <a href="Bitweiser_Operator#Arithmetische_Verschiebung" title="Bitweiser Operator">Linksshift</a> um 4 Bits entspricht, und anschließender Addition des Offset 0120 die absolute Adresse im physischen Addressraum. Bei Befehlen zum Datenaustausch wie zum Beispiel <i>MOV DX, [BX]</i> dagegen bezieht sich die Adresse in <i>BX</i> als <a href="Zeiger_(Informatik)" title="Zeiger (Informatik)">Zeiger</a> auf das Datensegment. <a href="Assemblersprache" title="Assemblersprache">Assemblersprachen</a> stellen eigene Anweisungen zur Definition von Segmenten für Daten, Code, Stack, und deren Reihenfolge bereit (zum Beispiel <i>.DATA</i>, <i>.CODE</i>, <i>.STACK</i> u.&nbsp;a.).
</p><p>In manchen Betriebssystemen (z.&nbsp;B. in <a href="Z/OS" title="Z/OS">z/OS</a>) ist die Trennung von Code- und Datensegmenten nicht erforderlich. Die Maschinenbefehle unterscheiden diese beiden Bereichstypen nicht, sondern <a href="Adressierung_(Rechnerarchitektur)" title="Adressierung (Rechnerarchitektur)">adressieren</a> Daten und Codeteile mit identischen Verfahren, Registern etc. Ein Maschinenprogramm kann demzufolge Daten und Code gemischt enthalten; aus Gründen der <a href="Softwarequalit%C3%A4t" title="Softwarequalität">Softwarequalität</a> (<a href="Wartbarkeit" title="Wartbarkeit">Wartbarkeit</a>) werden jedoch Datendeklarationen und der Befehlsteil des Programms meist strukturell getrennt <a href="Implementierung" title="Implementierung">implementiert</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Block_Started_by_Symbol"><span id="BSS"></span>Block Started by Symbol</h2></div>
<p>Die Bezeichnung <b>Block Started by Symbol</b> wird in vielen Compiler und Linker für ein Segment benutzt, das statische Variablen enthält, die mit Nullwerten initialisiert werden. Oft wird die Abkürzung <b>BSS</b> oder <b>.bss</b> benutzt. Dieser <a href="Speicherbereich" title="Speicherbereich">Speicherbereich</a> eignet sich z.&nbsp;B. für <a href="Array_(Datentyp)" title="Array (Datentyp)">Arrays</a>, die nicht mit vordefinierten Werten initialisiert sind. In der Objektdatei werden üblicherweise nicht die Nullwerte gespeichert, sondern nur die Größe des BSS-Bereichs. Der <a href="Lader_(Programmierung)" title="Lader (Programmierung)">Lader</a> wertet dann diese Information aus und fordert einen entsprechend großen Speicherbereich vom Betriebssystem an, wobei er sicherstellt, dass der Speicherbereich mit den Nullwerten initialisiert wird.
</p><p>Historisch war Block Started by Symbol eine Pseudo-Operation im UA-SAP (United Aircraft Symbolic Assembly Program), ein Mitte der 1950er entwickelter <a href="Assembler_(Informatik)" title="Assembler (Informatik)">Assembler</a>.
</p>
<div class="mw-heading mw-heading2"><h2 id="Siehe_auch">Siehe auch</h2></div>
<ul><li><a href="Codesegment" title="Codesegment">Codesegment</a></li>
<li><a href="A.out" title="A.out">a.out</a></li></ul></div><!--htdig_noindex--><div><div class="zim-footer">
Dieser Artikel wurde von <a class="external text" title="Zuletzt bearbeitet am 2025-12-29" href="https://de.wikipedia.org/wiki/?title=Datensegment&amp;oldid=262845802">Wikipedia</a> herausgegeben. Der Text ist unter <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.de">Creative Commons Attribution-Share Alike 4.0</a> verfügbar, sofern nicht anders angegeben. Für die Mediendateien können zusätzliche Bedingungen gelten.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
<script src="./_webp_/webpHandler.js"></script>

</body></html>